function arguments
When functions are called, 0 to 16 values are passed to them. Each of these
arguments can be a numeric value, a string value, or a whole array. Every GIANT and
DOUBLE variable counts as two arguments, as does the preceding argument. Arrays and
composites count as one argument, regardless of type.
numeric arguments
a = Func (b, c#+d#, e$$[f,g])
string arguments
a = Func (b$, c$+d$, e$[f,g])
array arguments
a = Func (@b[], @c%[], @d#[], @e$[])
argument kind and data-type checking
The kind and data type of each argument must be compatible with the corresponding argument
in the function declaration. The data type of numeric arguments do not have to be
identical to the corresponding parameter in the function declaration. When they
differ, the compiler converts the value to the declared type before passing it to the
function. The compiler will not, however, convert string or composite arguments to
numeric types or vice versa. The types of array arguments must be identical, except
for arrays given the ANY type in the function declaration.
Functions may not be called within a function argument list. This prevents argument
evaluation order differences from occurring when programs are ported from system to
system.
a = Func1 ( b, Func2() ) ' ERROR : argument attempted to call
Func2()
a = Func1 ( b, &Func2() ) ' OKAY : no argument attempt to call
Func2()